#!/bin/bash
###############################################################################
#
# mount_vmware_shared_folders.sh
#
# 说明：
#   本脚本用于 VMware 虚拟机中，通过 open-vm-tools 自动挂载共享目录。
#   它会将所有共享目录（.host:/）挂载到 /mnt/hgfs 下。
#
# 注意：
#   此脚本中的关键命令均加上了 sudo 以确保获得 root 权限执行操作。
#
# 使用方法：
#   ./mount_vmware_shared_folders.sh
#
###############################################################################

set -euo pipefail

MOUNT_POINT="/mnt/hgfs"

# 检查 vmhgfs-fuse 命令是否存在
if ! command -v vmhgfs-fuse &>/dev/null; then
    echo "Error: vmhgfs-fuse 命令未找到，请确保已安装 open-vm-tools" >&2
    exit 1
fi

# 创建挂载点（如果不存在）
if [ ! -d "$MOUNT_POINT" ]; then
    echo "创建挂载点 $MOUNT_POINT ..."
    sudo mkdir -p "$MOUNT_POINT"
fi

# 检查是否已挂载共享目录
if mount | grep " on $MOUNT_POINT " &>/dev/null; then
    echo "共享目录已经挂载在 $MOUNT_POINT"
    exit 0
fi

# 执行挂载操作
echo "正在挂载 VMware 共享目录到 $MOUNT_POINT ..."
sudo vmhgfs-fuse .host:/ "$MOUNT_POINT" -o allow_other

if [ $? -eq 0 ]; then
    echo "成功挂载 VMware 共享目录。"
else
    echo "挂载失败，请检查 open-vm-tools 是否正确安装或配置。" >&2
    exit 1
fi

